#LyX 2.3 created this file. For more info see http://www.lyx.org/
\lyxformat 544
\begin_document
\begin_header
\save_transient_properties true
\origin unavailable
\textclass article
\use_default_options false
\maintain_unincluded_children false
\language english
\language_package default
\inputencoding auto
\fontencoding global
\font_roman "default" "default"
\font_sans "default" "default"
\font_typewriter "default" "default"
\font_math "auto" "auto"
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100 100
\font_tt_scale 100 100
\use_microtype false
\use_dash_ligatures true
\graphics default
\default_output_format default
\output_sync 0
\bibtex_command default
\index_command default
\paperfontsize default
\use_hyperref false
\papersize default
\use_geometry false
\use_package amsmath 1
\use_package amssymb 1
\use_package cancel 1
\use_package esint 1
\use_package mathdots 0
\use_package mathtools 1
\use_package mhchem 1
\use_package stackrel 1
\use_package stmaryrd 1
\use_package undertilde 1
\cite_engine basic
\cite_engine_type default
\biblio_style plain
\use_bibtopic false
\use_indices false
\paperorientation portrait
\suppress_date false
\justification true
\use_refstyle 0
\use_minted 0
\index Index
\shortcut idx
\color #008000
\end_index
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\paragraph_indentation default
\is_math_indent 0
\math_numbering_side default
\quotes_style english
\dynamic_quotes 0
\papercolumns 1
\papersides 1
\paperpagestyle default
\tracking_changes false
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
\end_header

\begin_body

\begin_layout Title
Toprammer - TOPxxxx OpenSource suite
\end_layout

\begin_layout Author
Copyright (c) 2009-2023 Michael Büsch <m@bues.ch>
\end_layout

\begin_layout Section
Dependencies
\end_layout

\begin_layout Itemize
Python 3.7 or later is required
\end_layout

\begin_layout LyX-Code
https://www.python.org/
\end_layout

\begin_layout Itemize
python3-usb module is required:
\end_layout

\begin_layout LyX-Code
https://pypi.org/project/pyusb/
\end_layout

\begin_layout Itemize
python3-pkg-resources module is required 'pkg_resources' is part of the
 Python 'setuptools' package.
\end_layout

\begin_layout LyX-Code
https://pypi.org/project/setuptools/
\end_layout

\begin_layout Itemize
PyQT6 is required for the graphical QT user interface (optional):
\end_layout

\begin_layout LyX-Code
https://riverbankcomputing.com/software/pyqt/download
\end_layout

\begin_layout Section
Supported chips
\end_layout

\begin_layout Standard
Just execute the following command to get a list of supported chips:
\end_layout

\begin_layout LyX-Code
toprammer --list
\end_layout

\begin_layout Standard
For a more verbose list, also pass the -V parameter with a verbosity level
 number:
\end_layout

\begin_layout LyX-Code
toprammer --list -V99
\end_layout

\begin_layout Section
Installation
\end_layout

\begin_layout Standard
Just execute
\end_layout

\begin_layout LyX-Code
python ./setup.py install
\end_layout

\begin_layout Standard
as root inside of the toprammer distribution package's root directory.
 Note that 
\begin_inset Quotes eld
\end_inset

setuptools
\begin_inset Quotes erd
\end_inset

 have to be installed on your system.
 See dependencies.
\end_layout

\begin_layout Section
Graphical user interface tool usage
\end_layout

\begin_layout Standard
The toprammer GUI tool is called 
\begin_inset Quotes eld
\end_inset

toprammer-gui
\begin_inset Quotes erd
\end_inset

.
 To start it just run:
\end_layout

\begin_layout LyX-Code
toprammer-gui
\end_layout

\begin_layout Standard
Note that, depending on your system config, you might need to run toprammer-gui
 as root to allow USB hardware access.
 If you get 
\begin_inset Quotes eld
\end_inset

Operation not permitted" errors, try to re-run toprammer-gui as root.
\end_layout

\begin_layout Section
Commandline tool usage
\end_layout

\begin_layout Standard
Toprammer needs the identification string of the chip that is inserted into
 the ZIF socket.
 Additionally it needs an action to be performed on the chip.
 So a call to toprammer might look like this:
\end_layout

\begin_layout LyX-Code
toprammer --chip-id atmega32dip40 --read-prog flash.img
\end_layout

\begin_layout Standard
That command selects an Atmel AtMega32 DIP40 chip and reads its flash contents
 into the flash.img file.
\end_layout

\begin_layout Standard
For a list of supported chips, see the
\end_layout

\begin_layout LyX-Code
topgrammer --list
\end_layout

\begin_layout Standard
command.
 It will print a list of supported chip-IDs.
\end_layout

\begin_layout Section
ZIF socket layout
\end_layout

\begin_layout Standard
The ZIF socket layout generator "toprammer-layout" will try to generate
 a chip-insert layout with the given parameters and print it as ASCII-art
 to the console.
\end_layout

\begin_layout Standard
For example, if you have a DIP28 packaged chip, that needs VCC on pin 7,
 VPP on pin 1 and GND on pin 8, you'd issue the following command:
\end_layout

\begin_layout LyX-Code
toprammer-layout -d top2049 --package DIP28 --vcc 7 --vpp 1 --gnd 8
\end_layout

\begin_layout Standard
This will show you a layout of how to insert the chip into the programmer.
 It will also show which pins of the ZIF are powered.
 This will hopefully match your request.
 :) Alternatively, it will yield an error message, if it was unable to find
 a layout that fits the contraints.
 Note that the –vcc, –vpp and –gnd pins specified on the commandline are
 with respect to the package (_not_ the ZIF socket).
 The whole purpose of the tool is to map the package and its pin layout
 to the ZIF socket, while obeying the programmer constraints.
\end_layout

\begin_layout Standard
Alternatively you can specify one of the supported chip-IDs to toprammer-layout:
\end_layout

\begin_layout LyX-Code
toprammer-layout -d top2049 --package atmega8dip28
\end_layout

\begin_layout Standard
This will show you the layout of the AtMega8 DIP28.
\end_layout

\end_body
\end_document
